The present invention relates to an apparatus for controlling a virtual environment, and in particular an interactive virtual environment which may be populated by avatars and props. Such an apparatus can be used, for example, as an authoring tool for allowing a user to create and edit animation sequences, or in games.
In conventional computer animation systems, an animator creates a series of movements in a scene frame by frame. Alternatively the animator may create a series of keyframes, in which case the system automatically creates the intermediate frames to produce a linear animation sequence. In such systems the process of creating an animation sequence is slow and expensive due to the need to employ a skilled animator to create the frames or keyframes.
Alternative computer animation systems have therefore been proposed in which animation sequences can be produced by a user controlling a virtual environment interactively and by extensive re-use of pre-existing animations stored within the system. In such systems, a virtual environment is created which may be populated by avatars, props and other objects. Animations are made available which determine the way in which the objects move in the virtual environment. These may be imported directly from motion capture rigs, created in other 3D-animation packages or exist in the library of motions included with the software. By controlling the virtual environment, a user can build up an animation sequence for later replay or editing.
Interactive virtual environments are also used in many computer games. Such games usually display a virtual world populated by characters and other objects. The characters may move through the virtual world and perform actions such as picking up an object. In such games animation sequences are created in response to a user's input, but no provision is made to save the animation sequence for replay or for editing.
A problem which arises when creating an interactive virtual environment is that, due to its interactive nature, it is difficult to ensure that the integrity of the environment will be maintained in all possible situations. This problem is usually overcome by predicting all possible situations which may arise, and ensuring that an animation is available for each situation. For example, a character entering a room may need to interact with an object within the room. The designer will then need to create a bespoke animation for the character to go to each potential place where the object might be. The complexity of such animations and workload involved in creating them mean that only a small set of possible options are normally created for a given situation. The animations give the impression of free choice but, in fact, a tree structure of options is worked through.
If an object or choice within a scene was not considered by the designers of the scene then the environment may crash or fail to allow the user to continue as there is no pre-determined way for the user to get to the object, make the choice etc.
Interaction with objects also introduces complexity in terms of the number of potential objects. For example, if an avatar is able to pick up and put down a prop, then the system must be able to cope with the avatar both with and without the prop. This is traditionally done by predicting all possible combinations of objects which may arise, and ensuring that an animation is available for each possible combination. This can be done by providing separate animations of the avatar with and without the prop and cutting from one to the other when the prop is picked up or put down. Such an arrangement requires a large amount of animation to be produced in advance and stored ready for use. Furthermore the need to animate all possible combinations of objects in advance limits the number of objects that can be linked.
Alternatively a bit map image of the prop may be overlaid on the avatar when the avatar picks up the prop. In this case the appearance of the avatar is altered so that it appears as a combination of the avatar and the prop. The prop and the avatar movement need to be coordinated so that the interaction with the prop appears realistic, although both prop and avatar are actually having their movements controlled separately within the system. This arrangement has the disadvantage that it is difficult to maintain the integrity of the environment, as the system has to include provision for remembering the positioning of all the props and ensuring they are only interacted with in positions that have animations created for that position.